Reproducible execution of SR programs
نویسنده
چکیده
Reproducing the execution of a concurrent program is important in debugging and testing. It requires that, regardless of the actual order in which processes may execute, the reproduced execution is identical, with respect to the order in which certain activities occur, to a previously recorded execution. This paper presents a solution to the reproducibility problem for programs written in the SR concurrent programming language. Our solution transforms an arbitrary SR program into one for recording an event sequence and one for replaying from an event sequence. SR provides a rich collection of synchronization mechanisms, including rendezvous, asynchronous message passing, remote procedure call, and dynamic process creation. SR language features allow: exible invocation servicing (e.g., use of invo-cation parameters in selecting an invocation to service in message passing or rendezvous); dynamically created processes and resource (module) instances; dynamic communication paths between processes; and dynamic distribution of programs across multiple machines. Because of these features, adaptations of previous solutions to the reproducibility problem for other languages and notations do not work for SR. Our solution handles all the above features. It results in a naturally distributed control algorithm for programs that are distributed. This paper also describes the implementations of our transformation tools.
منابع مشابه
Selective Recomputation for Handling Side-Effects in Parallel Logic Programs
In contrast to merely AND-and merely OR-parallel execution models/systems, the side-eeect problem in AND/OR parallel execution of Prolog programs is intricate and need to be carefully investigated. To decrease the non-trivial recomputation occurred in previous approach, this paper presents a Selective Recomputation(SR) approach for handling side-eeects in the OR-forest model which can exploit b...
متن کاملScaling Data Race Detection for Partitioned Global Address Space Programs Chang-
i. Low overhead automated and precise detection of concurrency bugs at scale. ii. Using low overhead bug detection tools to guide speculative program transformations for performance. iii. Techniques to reduce the concurrency required to reproduce a bug using partial program restart/replay. iv. Techniques to provide reproducible execution of floating point programs. v. Techniques for tuning the ...
متن کاملReproducible and Deterministic Testing of Distributed Real-Time Systems
Reproducible and deterministic testing of sequential programs can in most cases be achieved by controlling the sequence of inputs to the program. The behavior of a distributed real-time system, on the other hand, is not only dependent on the inputs but also on the order, and timing of the tasks (concurrent processes) that execute and communicate with each other and the environment. Trying to ap...
متن کاملHandling Side - e ects with Selective Recomputationin AND / OR Parallel Execution
The side-eeect problem in AND/OR parallel execution of logic programs is complex and need to be further investigated. This paper presents a Selective Recomputation(SR) approach for handling side-eeects in the OR-forest model which can exploit both AND-and OR-parallelism. In contrast to merely AND-and merely OR-parallel execution models/systems, handling side-eeects in AND/OR parallel execution ...
متن کاملState-Based Reproducible Testing for CORBA Applications
Reproducible testing approaches have been developed for traditional concurrent programs for over a decade to provide a deterministic way of testing, but those approaches are generally based on the control structure of the program. However, in recently revitalized component based software development, state-based testing is more important than control structure based testing because such compone...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Concurrency - Practice and Experience
دوره 11 شماره
صفحات -
تاریخ انتشار 1999